Stepper motor devices use motor drivers to provide power signals to the connected stepper motors in response to control signals, e.g., pulse and direction signals, from external controllers. Using a stepper motor driver without microstepping control, a typical stepper motor device will experience resonance and rough motion at low speeds. However, using a stepper motor driver with microstepping control, the resonance and rough motion problems at low speeds can be greatly reduced.
A conventional microstepper motor driver for a two-phase stepper motor includes a translator, a phase-A digital-to-analog converter (DAC), a phase-B DAC, a phase-A power converter and a phase-B power converter. The translator outputs two rectified binary sinusoidal values, which are ninety degrees out of phase, to the phase-A and phase-B DACs using control signals from an external controller. The translator also outputs two additional digital signals, which represent the polarities of the rectified sinusoidal values, to the phase-A and phase-B power converters. The phase-A DAC outputs an analog sinusoidal signal to the phase-A power converter using the received binary sinusoidal value. Similarly, the phase-B DAC outputs an analog sinusoidal signal to the phase-B power converter using the received binary sinusoidal value. The phase-A power converter outputs a current-controlled power signal to one of the coils of the connected stepper motor using the analog sinusoidal signal from the phase-A DAC and the digital polarity signal from the translator. Similarly, the phase-B power converter outputs a current-controlled power signal to the other coil of the stepper motor using the analog sinusoidal signal from the phase-B DAC and the digital polarity signal from the translator.
Common choices for the translator of a conventional microstepper motor driver includes an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) and a microcontroller. An ASIC has a low unit cost, but requires high design and non-recurring engineering (NRE) cost. A FPGA is readily available, but has a high unit cost. A microcontroller is desirable with off-the-shelf availability, wide variety of choices (8 bit to 32 bit), well proven CPU architectures (8051 to RISC), programmable using common programming language (Assembly to C) and a wide range of features and peripherals (built-in memory, flash, UART, SPI, ADC, DAC, oscillator, temperature sensor, etc.). However, in order to properly support a high rate of microstepping, a high performance microcontroller is needed, which can significantly increase the cost of the microstepper motor driver. Otherwise, the microstepping rate using a low-cost, lower performance microcontroller is limited.
Therefore, there is a need for a microstepper motor device and method for controlling the device that can support a high micrstepping rate using a low cost microcontroller.